/*
 * @Description:
 * @Version: 2.0
 * @Autor: snzo.chen
 * @Date: 2023-05-24 14:57:57
 * @LastEditors: snzo.chen
 * @LastEditTime: 2023-06-06 09:50:37
 */
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { map, Observable } from 'rxjs';
import { AnyJson } from './data-types/common.type';

@Injectable({
  providedIn: 'root',
})
export class CreditBankService {
  constructor(private http: HttpClient) {}

  /**
   * 删除学分银行信息
   * @param params
   * @returns
   */
  deleteSbMsg(params: AnyJson): Observable<AnyJson> {
    return this.http
      .get('/sbm/deleteSbMsg', { params })
      .pipe(map((res) => res as AnyJson));
  }

  /**
   * 添加学分银行信息
   * @param body
   * @returns
   */
  insertSbMsg(body: AnyJson): Observable<AnyJson> {
    return this.http
      .post('/sbm/insertSbMsg', body)
      .pipe(map((res) => res as AnyJson));
  }

  /**
   * 获取学分详细信息
   * @param body
   * @returns
   */
  getSbMsgById(params: AnyJson): Observable<AnyJson> {
    return this.http
      .get('/sbm/getSbMsgById', { params })
      .pipe(map((res) => res as AnyJson));
  }

  /**
   * 更新学分银行信息
   * @param body
   * @returns
   */
  updateSbMsg(body: AnyJson): Observable<AnyJson> {
    return this.http
      .post('/sbm/updateSbMsg', body)
      .pipe(map((res) => res as AnyJson));
  }

  /**
   * 根据条件获取学分银行信息
   * @param body
   * @returns
   */
  getSbMsgByStuId(body: AnyJson, params: AnyJson): Observable<AnyJson> {
    return this.http
      .post('/sbm/getSbMsgByStuId', body, { params })
      .pipe(map((res) => res as AnyJson));
  }

  /**
   * 添加学生
   * @param body
   * @returns
   */
  insertSbStu(body: AnyJson): Observable<AnyJson> {
    return this.http
      .post('/sbsm/insertSbStu', body)
      .pipe(map((res) => res as AnyJson));
  }

  /**
   * 按条件查询学生
   * @param body
   * @returns
   */
  likeSbStu(body: AnyJson, params: AnyJson): Observable<AnyJson> {
    return this.http
      .post('/sbsm/likeSbStu', body, { params })
      .pipe(map((res) => res as AnyJson));
  }

  /**
   * 更新学生信息
   * @param body
   * @returns
   */
  updateSbStu(body: AnyJson): Observable<AnyJson> {
    return this.http
      .post('/sbsm/updateSbStu', body)
      .pipe(map((res) => res as AnyJson));
  }

  /**
   * 根据学生ID查询信息
   * @param body
   * @returns
   */
  getMsgById(body: AnyJson): Observable<AnyJson> {
    return this.http
      .post('/sbsm/getMsgById', body)
      .pipe(map((res) => res as AnyJson));
  }

  /**
   * 删除学生信息
   * @param params
   * @returns
   */
  deleteSbStu(params: AnyJson): Observable<AnyJson> {
    return this.http
      .get('/sbsm/deleteSbStu', { params })
      .pipe(map((res) => res as AnyJson));
  }
}
